AWK কমান্ডের মৌলিক কাঠামো সরল এবং ব্যবহার সহজ। AWK কমান্ড সাধারণত নিম্নলিখিত ফরম্যাটে লেখা হয়:
awk 'pattern { action }' filename
এখানে:
action
কার্যকর হবে। এটি নিয়মিত এক্সপ্রেশন বা সাধারণ শর্ত হতে পারে।সরল AWK কমান্ড:
awk '{print $1}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের প্রথম কলামটি প্রিন্ট করবে।
শর্তযুক্ত AWK কমান্ড:
awk '$2 > 50 {print $1, $2}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের দ্বিতীয় কলামের মান 50 এর বেশি হলে প্রথম এবং দ্বিতীয় কলাম প্রিন্ট করবে।
ফাইলের নির্দিষ্ট প্যাটার্ন খোঁজা:
awk '/pattern/ {print}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের মধ্যে নির্দিষ্ট pattern
খুঁজে বের করে সেই লাইনগুলো প্রিন্ট করবে।
AWK কিছু বিল্ট-ইন ফাংশন সরবরাহ করে, যেমন:
length: একটি স্ট্রিংয়ের দৈর্ঘ্য ফেরত দেয়।
awk '{print length($0)}' filename.txt
toupper: একটি স্ট্রিংকে বড় হাতের অক্ষরে রূপান্তর করে।
awk '{print toupper($1)}' filename.txt
tolower: একটি স্ট্রিংকে ছোট হাতের অক্ষরে রূপান্তর করে।
awk '{print tolower($1)}' filename.txt
AWK কমান্ডের মৌলিক কাঠামো একটি প্রাথমিক ধারণা প্রদান করে যা ব্যবহারকারীদের জন্য টেক্সট ফাইলের উপর বিভিন্ন কার্যক্রম সম্পাদন করতে সহায়ক। এর সরলতা এবং শক্তিশালী কার্যকারিতা AWK কে ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য একটি জনপ্রিয় টুল করে তোলে। AWK ব্যবহার করে ব্যবহারকারীরা তাদের ডেটা বিশ্লেষণ ও পরিচালনায় দক্ষতা অর্জন করতে পারেন।
AWK একটি টেক্সট প্রসেসিং ভাষা, যা বিশেষ করে ডেটা ফিল্টারিং এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এর ব্যাসিক সিনট্যাক্স এবং কাঠামো সহজ, যা ব্যবহারকারীদের টেক্সট ফাইলের উপর বিভিন্ন অপারেশন করতে সহায়তা করে। এখানে AWK এর ব্যাসিক সিনট্যাক্স, ইনপুট ফাইল, এবং আউটপুট সম্পর্কিত বিস্তারিত তথ্য দেওয়া হলো।
AWK কমান্ড সাধারণত নিম্নলিখিত গঠনের হয়:
awk 'pattern { action }' input_file
{ action }
ব্লকটি কার্যকর হয়। শর্তটি প্রায়শই একটি নিয়মিত এক্সপ্রেশন হিসেবে ব্যবহার করা হয়।AWK একটি কমান্ড লাইন টুল হিসেবে কাজ করে এবং আউটপুট সাধারণত টার্মিনালে প্রদর্শিত হয়।
AWK প্রোগ্রাম লিখতে, আপনি নিচের উদাহরণটি দেখতে পারেন:
awk '{ print $1 }' data.txt
এই কমান্ডটি data.txt
ফাইলের প্রথম কলামটি প্রিন্ট করবে। এখানে $1
প্রথম কলাম নির্দেশ করে।
AWK সাধারণত টেক্সট ফাইলের সাথে কাজ করে, যা রেকর্ড এবং ফিল্ডে বিভক্ত থাকে। প্রতিটি রেকর্ড সাধারণত একটি লাইনে থাকে এবং ফিল্ডগুলি সাধারণত স্পেস বা ট্যাব দ্বারা পৃথক করা হয়। একটি ইনপুট ফাইল উদাহরণ হতে পারে:
Alice 25 Engineer
Bob 30 Designer
Charlie 28 Manager
এখানে, প্রতিটি লাইনে তিনটি ফিল্ড আছে: নাম, বয়স, এবং পেশা।
AWK আউটপুট সাধারণত টার্মিনালে দেখা যায়, কিন্তু এটি একটি ফাইলেও লেখা যেতে পারে। উদাহরণস্বরূপ, প্রথম কলাম এবং তৃতীয় কলাম প্রিন্ট করতে:
awk '{ print $1, $3 }' data.txt
এটি আউটপুট করবে:
Alice Engineer
Bob Designer
Charlie Manager
এছাড়াও, AWK ব্যবহার করে আউটপুট একটি ফাইলে সংরক্ষণ করতে পারেন:
awk '{ print $1, $3 }' data.txt > output.txt
এই কমান্ডটি output.txt
নামে একটি নতুন ফাইলে ফলাফল সংরক্ষণ করবে।
AWK এর ব্যাসিক সিনট্যাক্স সহজ এবং সোজা। এর মাধ্যমে ব্যবহারকারীরা টেক্সট ফাইলের মধ্যে সহজেই ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের কাজ করতে পারেন। AWK এর ব্যবহারকারী ইনপুট ফাইল থেকে ডেটা এক্সট্র্যাক্ট করে বিভিন্ন আউটপুট তৈরি করতে সক্ষম, যা ডেটা ম্যানিপুলেশনকে অনেক বেশি কার্যকরী করে তোলে। AWK এর এই বৈশিষ্ট্যগুলি এটিকে প্রোগ্রামারদের এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের মধ্যে একটি জনপ্রিয় টুল করে তোলে।
AWK একটি শক্তিশালী টুল যা টেক্সট প্রসেসিং এবং ডেটা বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি বিভিন্ন স্ক্রিপ্ট এবং কমান্ড লাইনে কার্যকরীভাবে ব্যবহার করা যায়। নিচে AWK স্ক্রিপ্ট এবং কমান্ড লাইনে এর ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হয়েছে।
AWK স্ক্রিপ্ট সাধারণত ফাইলের মধ্যে লেখা হয় এবং তারপর টার্মিনাল থেকে চালানো হয়। AWK স্ক্রিপ্ট লেখার সময় সাধারণ সিনট্যাক্স এই রকম:
awk 'pattern { action }' filename
action
কার্যকর হয়।pattern
মিলে গেলে কার্যকর হবে।সাধারণ স্ক্রিপ্ট:
একটি ফাইল থেকে দ্বিতীয় কলাম প্রদর্শন করা:
awk '{print $2}' data.txt
শর্তাধীন স্ক্রিপ্ট:
তৃতীয় কলামের মান 50 এর বেশি হলে প্রথম কলাম প্রদর্শন করা:
awk '$3 > 50 {print $1}' data.txt
যোগফল বের করা:
দ্বিতীয় কলামের মানের যোগফল বের করা:
awk '{sum += $2} END {print sum}' data.txt
ফাইলের নির্দিষ্ট লাইন নম্বর দেখানো:
দ্বিতীয় লাইনে থাকা ডেটা দেখানো:
awk 'NR==2 {print}' data.txt
AWK সাধারণত টার্মিনালে সরাসরি ব্যবহার করা হয়। এর কিছু জনপ্রিয় কমান্ড লাইনের উদাহরণ:
প্যাটার্ন খোঁজা:
একটি টেক্সট ফাইলে নির্দিষ্ট প্যাটার্ন খুঁজে বের করা:
awk '/pattern/ {print}' filename.txt
কলাম প্রিন্ট করা:
প্রথম এবং তৃতীয় কলাম প্রিন্ট করা:
awk '{print $1, $3}' filename.txt
নির্দিষ্ট ডেলিমিটার দিয়ে কাজ করা:
কমা (,
) ডেলিমিটারের সাথে কাজ করা:
awk -F, '{print $1, $2}' data.csv
গণনা করা:
একটি ফাইলের মধ্যে সব সংখ্যা গোনা:
awk '{count++} END {print count}' filename.txt
গড় বের করা:
একটি কলামের গড় বের করা:
awk '{sum += $1; count++} END {print sum/count}' data.txt
AWK স্ক্রিপ্ট এবং কমান্ড লাইনে ব্যবহার করার জন্য অসংখ্য ক্ষমতা প্রদান করে, যা টেক্সট ফাইল এবং ডেটাবেসের সাথে কাজকে অনেক সহজ করে তোলে। এটি ব্যবহার করে ব্যবহারকারীরা দ্রুত এবং কার্যকরভাবে ডেটা বিশ্লেষণ এবং প্রক্রিয়া করতে পারেন, যা বিভিন্ন ক্ষেত্রে বিশেষ করে সিস্টেম প্রশাসন এবং ডেটা বিশ্লেষণের জন্য অত্যন্ত কার্যকর। AWK এর এই ক্ষমতা এটিকে প্রোগ্রামারদের এবং ডেটা বিশ্লেষকদের মধ্যে একটি জনপ্রিয় টুল হিসেবে প্রতিষ্ঠিত করেছে।
AWK প্রোগ্রামিং ভাষায় কিছু বিল্ট-ইন ভেরিয়েবল রয়েছে, যা বিশেষ উদ্দেশ্যে ব্যবহৃত হয়। এই ভেরিয়েবলগুলি AWK এর কার্যকারিতা বাড়াতে সহায়ক এবং বিভিন্ন কার্যক্রমের জন্য প্রস্তুত করা হয়। নিচে AWK এর কিছু গুরুত্বপূর্ণ বিল্ট-ইন ভেরিয়েবল এবং তাদের কাজ সম্পর্কে আলোচনা করা হলো:
$0
ব্যবহার করে পুরো লাইনের ডেটা অ্যাক্সেস করা যায়।উদাহরণ:
awk '{print $0}' filename.txt
$1
প্রথম ফিল্ড, $2
দ্বিতীয় ফিল্ড, এবং এভাবে এগিয়ে চলে।উদাহরণ:
awk '{print $1, $3}' filename.txt
NR
ব্যবহার করে আপনি কতটি লাইন প্রক্রিয়া করা হয়েছে তা জানতে পারেন।উদাহরণ:
awk '{print NR, $0}' filename.txt
এখানে প্রতিটি লাইনের সাথে তার লাইন নম্বর প্রদর্শিত হবে।
NF
ব্যবহার করে আপনি জানতে পারেন একটি রেকর্ডে মোট কতটি ফিল্ড আছে।উদাহরণ:
awk '{print NF}' filename.txt
এখানে প্রতিটি লাইনে ফিল্ডের সংখ্যা প্রদর্শিত হবে।
FILENAME
ব্যবহার করে জানতে পারেন কোন ফাইলের সাথে কাজ করা হচ্ছে।উদাহরণ:
awk '{print FILENAME, $0}' filename.txt
FS
ব্যবহার করে আপনি ফিল্ড সেপারেটর পরিবর্তন করতে পারেন।উদাহরণ:
awk 'BEGIN {FS=","} {print $1}' filename.csv
OFS
ব্যবহার করে আউটপুটের ফিল্ডগুলির মধ্যে স্পেস, কমা, বা অন্য কোনো চিহ্ন ব্যবহার করা যায়।উদাহরণ:
awk 'BEGIN {OFS=";"} {print $1, $2}' filename.txt
ORS
পরিবর্তন করে, আপনি আউটপুট রেকর্ডগুলির মধ্যে ব্যবধান পরিবর্তন করতে পারেন।উদাহরণ:
awk 'BEGIN {ORS=" | "} {print $0}' filename.txt
RS
ব্যবহার করে আপনি কীভাবে ইনপুট ডেটা রেকর্ডে বিভক্ত হবে তা নির্ধারণ করতে পারেন।উদাহরণ:
awk 'BEGIN {RS=","} {print}' filename.txt
AWK এর এই বিল্ট-ইন ভেরিয়েবলগুলি ব্যবহার করে আপনি ডেটা প্রসেসিং এবং বিশ্লেষণের কাজকে আরও সহজ ও কার্যকর করতে পারেন। প্রতিটি ভেরিয়েবল তার নিজস্ব উদ্দেশ্য পূরণের জন্য ডিজাইন করা হয়েছে এবং এগুলি AWK এর ক্ষমতা বাড়াতে সহায়ক।
AWK এ ডেটা বিশ্লেষণের জন্য Field Separator (FS) এবং Record Separator (RS) অত্যন্ত গুরুত্বপূর্ণ ধারণা। FS এবং RS ব্যবহার করে ব্যবহারকারী ডেটা সংগ্রহ, বিশ্লেষণ এবং প্রক্রিয়া করতে পারে। এখানে FS এবং RS এর ব্যাখ্যা এবং তাদের ব্যবহার নিয়ে আলোচনা করা হবে।
Field Separator (FS) হল একটি বিশেষ চিহ্ন যা AWK কে নির্দেশ করে যে একটি রেকর্ডের মধ্যে ফিল্ডগুলি (বা কলাম) কীভাবে পৃথক হবে। ডিফল্টরূপে, AWK স্পেস এবং ট্যাবকে ফিল্ড সেপারেটর হিসেবে বিবেচনা করে, তবে ব্যবহারকারী নিজের প্রয়োজন অনুযায়ী FS সেট করতে পারেন।
,
) একটি সাধারণ ফিল্ড সেপারেটর।ধরা যাক, একটি CSV ফাইলের নাম data.csv
রয়েছে:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
এই ফাইলটি AWK দিয়ে প্রসেস করার জন্য FS হিসাবে কমা ব্যবহার করা যেতে পারে:
awk -F, '{print $1, $2}' data.csv
এখানে -F,
কমা কে ফিল্ড সেপারেটর হিসেবে সেট করে, এবং এটি name
এবং age
প্রিন্ট করবে।
Record Separator (RS) হল একটি বিশেষ চিহ্ন যা AWK কে নির্দেশ করে যে একটি রেকর্ড (বা লাইনের শেষ) কীভাবে চিহ্নিত হবে। ডিফল্টরূপে, AWK নতুন লাইন (\n
) কে রেকর্ড সেপারেটর হিসেবে ব্যবহার করে। ব্যবহারকারী অন্য কোনো চিহ্ন ব্যবহার করতে চাইলে RS সেট করতে পারেন।
ধরা যাক, একটি ফাইলের নাম records.txt
রয়েছে:
Record 1
Data A
Data B
Record 2
Data C
Data D
এখন, RS হিসাবে দুটি নতুন লাইনের (বা অন্য কোনো চিহ্ন) ব্যবহার করে রেকর্ডগুলো আলাদা করা যেতে পারে:
awk -v RS="" '{print $1}' records.txt
এখানে -v RS=""
নির্দেশ করে যে দুটি নতুন লাইন একটি রেকর্ডের সমাপ্তি নির্দেশ করে। এটি Record 1
এবং Record 2
এর মতো ব্লককে আলাদা করে প্রক্রিয়াকরণ করবে।
AWK এ Field Separator (FS) এবং Record Separator (RS) ডেটা বিশ্লেষণের জন্য গুরুত্বপূর্ণ উপাদান। FS ব্যবহার করে ফিল্ডগুলি পৃথক করা হয় এবং RS ব্যবহার করে রেকর্ডগুলিকে আলাদা করা হয়। এই দুটি ধারণা ব্যবহার করে AWK ব্যবহারকারীরা তাদের ডেটার উপর কার্যকরভাবে বিশ্লেষণ এবং প্রক্রিয়াকরণ করতে সক্ষম হন, যা তাদের কাজকে আরও সহজ এবং কার্যকর করে।
common.read_more